home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 212
/
212.d81
/
b.shove it
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
11KB
|
314 lines
10 ifl=0thenl=1:load"s.fnt",8,1
20 poke52,128:poke56,128:clr:l=1
30 poke56578,peek(56578)or3:poke56576,(peek(56576)and252)or1:poke53272,16
40 poke648,132:poke53269,0:poke53280,14:poke53281,0:print"[154][147]";
50 diml1,l2,i,j,b(35),s(35)
70 gosub6000
80 gosub950
90 fori=0to34:readb(i),s(i):next
100 readl1,l2
105 print"[159][\\\\\\\\\\][157][157][157][157][157][157][157][157][157][157][157][157]^[155]score[159]....._ [159]";
110 print"[157][157][157][157][157][157][157][157][157][157][157][157][157]/::::::::::; [159]";
112 print"[157][157][157][157][157][157][157][157][157][157][157][157] [159]"
115 print"[159][\\\\\\\\\\\\][\\\\\\\\\\\\]"
120 print"^..[155]problem[159]..._ [159]^..[155]solution[159].._ [159]"
125 print"[159][198]\\\\\\\\\\\\[199] [159][198]\\\\\\\\\\\\[199] [159]"
130 i=15:ifb(26)=10theni=12
135 forj=1toi:print"^............_ [159]^............_ [159]":next
140 print"/::::::::::::; [159]/::::::::::::; [159]"
145 print" [159]";
180 r=1:fori=0to34:gosub1010:next
190 r=0:fori=0to34:gosub1010:next
200 rem main loop
205 m$=str$(m):m$=mid$(m$,2,len(m$)-1):m$=right$("....."+m$,5)
209 print"";m$;
210 ifq=0then216
211 ifjj=0thenreadjj
212 a=jj:jj=int(jj/10):a=a-int(jj*10)
213 geta$:ifa$<>chr$(135)then225
214 geta$:ifa$<>chr$(133)then214
215 goto225
216 geta$:ifa$=""then280
220 a=asc(a$)
225 if(a=145)or(a=1)or(a=85)then410
230 if(a=17)or(a=2)or(a=68)then510
240 if(a=29)or(a=4)or(a=82)then610
250 if(a=157)or(a=3)or(a=76)then710
260 if(a=136)or(a=5)or(a=83)then810
265 ifa=133then910
266 ifa=134thenprint"[154][147]";:gosub6400:goto80
270 goto210
280 a=peek(56320)and31:ifa=31then210
290 a=31-a:ifaand1then410
300 ifaand2then510
310 ifaand4then710
320 ifaand8then610
330 ifaand16then810
340 goto210
400 rem move up
410 onb(l1-5)+1goto415,420,210,425,430,435,210,210,440,445,210
415 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
420 b(l1)=1:b(l1-5)=0:i=l1:gosub1010:l1=l1-5:i=l1:goto2010
425 b(l1)=3:b(l1-5)=2:b(l1-10)=0:i=l1:gosub1010:i=l1-5:gosub1010:l1=l1-10
426 i=l1:goto2010
430 ifl2<>l1+1then210
431 b(l1)=b(l1-5):b(l2)=b(l2-5):b(l1-5)=0:b(l2-5)=0:i=l1:gosub1010:i=l2
432 gosub1010:l1=l1-5:l2=l2-5:i=l2:gosub1010:i=l1:goto2010
435 ifl2<>l1-1then210
436 goto431
440 ifl2<>l1+1then210
441 b(l1)=b(l1-5):b(l1-5)=b(l1-10):b(l1-10)=0:b(l2)=b(l2-5):b(l2-5)=b(l2-10)
442 b(l2-10)=0:i=l2:gosub1010:i=l2-5:gosub1010:l2=l2-10:i=l2:gosub1010
443 i=l1:gosub1010:i=l1-5:gosub1010:l1=l1-10:i=l1:goto2010
445 ifl2<>l1-1then210
446 goto441
500 rem move down
510 onb(l1+5)+1goto515,520,525,210,530,535,540,545,210,210,210
515 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
520 b(l1)=1:b(l1+5)=0:i=l1:gosub1010:l1=l1+5:i=l1:goto2010
525 b(l1)=2:b(l1+5)=3:b(l1+10)=0:i=l1:gosub1010:i=l1+5:gosub1010:l1=l1+10
526 i=l1:goto2010
530 ifl2<>l1+1then210
531 b(l1)=b(l1+5):b(l2)=b(l2+5):b(l1+5)=0:b(l2+5)=0:i=l1:gosub1010:i=l2
532 gosub1010:l1=l1+5:l2=l2+5:i=l2:gosub1010:i=l1:goto2010
535 ifl2<>l1-1then210
536 goto531
540 ifl2<>l1+1then210
541 b(l1)=b(l1+5):b(l1+5)=b(l1+10):b(l1+10)=0:b(l2)=b(l2+5):b(l2+5)=b(l2+10)
542 b(l2+10)=0:i=l2:gosub1010:i=l2+5:gosub1010:l2=l2+10:i=l2:gosub1010
543 i=l1:gosub1010:i=l1+5:gosub1010:l1=l1+10:i=l1:goto2010
545 ifl2<>l1-1then210
546 goto541
600 rem move right
610 onb(l1+1)+1goto615,620,625,630,635,210,640,210,645,210,210
615 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
620 b(l1)=1:b(l1+1)=0:i=l1:gosub1010:l1=l1+1:i=l1:goto2010
625 ifl2<>l1+5then210
626 b(l1)=b(l1+1):b(l2)=b(l2+1):b(l1+1)=0:b(l2+1)=0:l1=l1+1:l2=l2+1:i=l2
627 gosub1010:i=l2-1:gosub1010:i=l1-1:gosub1010:i=l1:goto2010
630 ifl2<>l1-5then210
631 goto626
635 b(l1)=4:b(l1+1)=5:b(l1+2)=0:l1=l1+2:i=l1-2:gosub1010:i=l1-1:gosub1010
636 i=l1:goto2010
640 ifl2<>l1+5then210
641 b(l1)=b(l1+1):b(l1+1)=b(l1+2):b(l1+2)=0:b(l2)=b(l2+1):b(l2+1)=b(l2+2)
642 b(l2+2)=0:l2=l2+2:l1=l1+2:i=l2:gosub1010:i=l2-1:gosub1010:i=l2-2:gosub1010
643 i=l1-2:gosub1010:i=l1-1:gosub1010:i=l1:goto2010
645 ifl2<>l1-5then210
646 goto641
700 rem move left
710 onb(l1-1)+1goto715,720,725,730,210,735,210,740,210,745,210
715 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
720 b(l1)=1:b(l1-1)=0:i=l1:gosub1010:l1=l1-1:i=l1:goto2010
725 ifl2<>l1+5then210
726 b(l1)=b(l1-1):b(l2)=b(l2-1):b(l1-1)=0:b(l2-1)=0:l1=l1-1:l2=l2-1:i=l2
727 gosub1010:i=l2+1:gosub1010:i=l1+1:gosub1010:i=l1:goto2010
730 ifl2<>l1-5then210
731 goto726
735 b(l1)=5:b(l1-1)=4:b(l1-2)=0:l1=l1-2:i=l1+2:gosub1010:i=l1+1:gosub1010
736 i=l1:goto2010
740 ifl2<>l1+5then210
741 b(l1)=b(l1-1):b(l1-1)=b(l1-2):b(l1-2)=0:b(l2)=b(l2-1):b(l2-1)=b(l2-2)
742 b(l2-2)=0:l2=l2-2:l1=l1-2:i=l2:gosub1010:i=l2+1:gosub1010:i=l2+2:gosub1010
743 i=l1+2:gosub1010:i=l1+1:gosub1010:i=l1:goto2010
745 ifl2<>l1-5then210
746 goto741
800 rem switch holes
810 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
900 rem see solution
910 gosub950:fori=0to34:readb(i),s(i):next:readl1,l2:fori=0to29:gosub1000:next
920 q=1:goto210
950 rem find problem
960 restore:ifpn=0thenreturn
970 fori=1topn
975 readj:ifj>=0then975
980 next:return
1000 rem draw square i
1010 y=int(i/5):x=i-5*y:x=x*3+20*r:y=y*3+6
1020 printleft$("",y);tab(x);:b=b(i):ifrthenb=s(i)
1030 onb+1goto1040,1050,1060,1070,1080,1090,1110,1120,1130,1140,1150
1040 ifi=l1then1160
1045 print"...[157][157][157]...[157][157][157]...";:return
1050 print"[158]![197]#[157][157][157]$%&[157][157][157]'()";:return
1060 print"![197]#[157][157][157]$%&[157][157][157]$%&";:return
1070 print"$%&[157][157][157]$%&[157][157][157]'()";:return
1080 print"![197][197][157][157][157]$%%[157][157][157]'((";:return
1090 print"[197][197]#[157][157][157]%%&[157][157][157](()";:return
1110 print"![197][197][157][157][157]$%%[157][157][157]$%%";:return
1120 print"[197][197]#[157][157][157]%%&[157][157][157]%%&";:return
1130 print"$%%[157][157][157]$%%[157][157][157]'((";:return
1140 print"%%&[157][157][157]%%&[157][157][157](()";:return
1150 return
1160 onb(l1-5)+1goto1180,1180,1200,1180,1170,1190,1200,1200,1170,1190,1200
1170 ifl2<>l1+1then1200
1180 print".*.[157][157][157]";:goto1210
1190 ifl2=l1-1then1180
1200 print"...[157][157][157]";
1210 onb(l1-1)+1goto1230,1230,1240,1220,1250,1230,1250,1240,1250,1220,1250
1220 ifl2<>l1-5then1250
1230 print"+.";:goto1260
1240 ifl2=l1+5then1230
1250 print"..";
1260 onb(l1+1)+1goto1280,1280,1290,1270,1280,1300,1290,1300,1270,1300,1300
1270 ifl2<>l1-5then1300
1280 print",[157][157][157]";:goto1310
1290 ifl2=l1+5then1280
1300 print".[157][157][157]";
1310 onb(l1+5)+1goto1330,1330,1330,1350,1340,1320,1340,1320,1350,1350,1350
1320 ifl2<>l1-1then1350
1330 print".-.";:return
1340 ifl2=l1+1then1330
1350 print"...";:return
2000 rem check board
2010 gosub1010:j=0:fori=0to29:j=j+(b(i)<>s(i)):next:m=m+1:ifjthen205
2015 fori=1to5:gosub6300:next
2020 print"[154][147][159][\\\\\\\\\\\\\\\\\\\\]"
2030 ifqthenprint"^that.was.not.so.hard[159]_ [159]":goto2050
2040 print"^.....you.did.it.....[159]_ [159]"
2050 print"[159]/::::::::::::::::::::; [159]"
2055 print" [159]"
2060 gosub6400:goto80
3000 rem restore font, pointers
3010 poke56578,peek(56578)or3:poke56576,peek(56576)or3:poke53272,20
3020 poke648,4:poke53280,14:poke53281,6:print"[154][147]";:return
4000 rem problem 1
4010 data10,10,10,10,10,10,10,10,10,10
4020 data10,10, 1, 1, 4, 1, 5, 0, 1, 1
4030 data10,10, 1, 2, 6, 6, 7, 7, 2, 0
4040 data10,10, 0, 3, 8, 8, 9, 9, 3, 1
4050 data10,10, 1, 1, 0, 4, 1, 5, 1, 1
4060 data10,10,10,10,10,10,10,10,10,10
4070 data10,10,10,10,10,10,10,10,10,10
4080 data16,22
4090 data33241351,41513225,32452324
4100 data45111541,22544452,11533225
4110 data22544451,15133533,25241351
4120 data41133254,4,-1
4500 rem problem 2
4510 data10,10,10,10,10,10,10,10,10,10
4520 data10,10, 6, 1, 7, 0, 2, 1, 1, 1
4530 data10,10, 8, 0, 9, 1, 3, 4, 1, 5
4540 data10,10, 4, 1, 5, 2, 1, 6, 0, 7
4550 data10,10, 1, 1, 1, 3, 0, 8, 1, 9
4560 data10,10,10,10,10,10,10,10,10,10
4570 data10,10,10,10,10,10,10,10,10,10
4580 data19,23
4590 data14511515,225423,13235332
4600 data25244544,11513535,54445245
4610 data35222532,4511335